МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра автоматики та телемеханіки
Курсова робота
з курсу: „Методи та засоби криптографічних перетворень”
на тему: “Симетричні та асиметричні методи зашифрування інформації”
Львів – 2005
Зміст
Завдання 1
Теоретичні відомості
Вибір ключа
Блок-схема алгоритму
Список ідентифікаторів
Текст програми
Відкритий текст
Результат зашифрування
Завдання 2
Теоретичні відомості
Вибір ключа
Зашифрування
Розшифрування
Висновок
Завдання 1
Вибрати ключі та розробити програму для за шифрування файлу даних заданим афінним шифром. Тип афінного шифру визначається останньою цифрою i НЗК. Об‘єм алфавіту визначається передостанньою цифрою j НЗК і дорівнює .
i
i mod 6
Тип афінного шифру
j
Розрядність алфавіту
Об‘єм алфавіту
4
4
Зсуву -го порядку
4
9
512
Теоретичні відомості
Вибір ключів
Блок-схема алгоритму
Список ідентифікаторів
Ідентифікатори
Призначення
const int a[2]={123, 199}
Ключ
const int n=512
Розмір алфавіту
FILE *fin
Вхідний файл
FILE *fout
Зашифрований файл
int eoffin
Прапорець кінця файлу
int x_OK
Прапорець готовності символа
unsigned long buf1
Вхідний буфер (32 біти)
unsigned long buf2
Вихідний буфер (32 біти)
unsigned long x
Проміжний символ (9 біт)
int c1
Лічильник непрочитаних бітів вхідного буфера
int c2
Лічильник незаповнених бітів вихідного буфера
int c3
Лічильник символів для реалізації блокового шифрування
Текст програми
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
const int a[2]={103, 199}, n=512;
void main(void)
{
char *str;
FILE *fin, *fout;
int eoffin=0, x_OK=1;
unsigned long buf1, buf2 = 0, x;
int c1=32, c2=32, c3=0;
if ( (fin=fopen("c:\\file.pl", "rb")) == NULL )
{
printf("cannot open the file data.fb");
getch();
exit(1);
}
else
if ( (fout=fopen("c:\\file.enc", "wb")) == NULL )
{
printf("cannot open the file data.fbc");
getch();
exit(1);
}
else
{
if (fread(&buf1, 1, 4, fin) != 0)
while (!eoffin)
{
if (c1<=0)
{
if (fread(&buf1, 1, 4, fin) != 0)
{
x |= (buf1 << (9+c1)) & 511;
buf1 >>= (-c1);
c1 += 32;
x_OK = 1 & !(c1==32);
}
else
{
eoffin = 1;
x_OK = 1;
}
}
else
{
x = buf1 & 511;
buf1 >>= 9;
c1 -= 9;
x_OK = 1 & (c1>=0);
}
/*--------------------------------*/
if (x_OK)
{
x = (unsigned int)(fmod(a[c3]+x, n));
if (c3==1)
c3=0;
else
c3++;
itoa(x, str, 10);
fputs(strcat(str, " "), stdout);
buf2 |= x << (32-c2);
c2 -= 9;
if (c2<=0)
{
fwrite(&buf2, 4, 1, fout);
buf2 &= 0;
if (c2==0)
c2 = 32;
else
{
buf2 |= x >> (9+c2);
c2 += 32;
}
}
}
}
fcloseall();
getch();
}
}
Відкритий текст
Звертаючи увагу на своєрідність історичних форм спільності людей, необхідно підкреслити надзвичайну важливість правильності розуміння категорії "нація" та філософських аспектів національного питання. Звичайно, своєрідність різних філософських підходів до проблеми нації виявляється лише в контексті системних співвідношень нації, народу, етносу та іні Тому без зясуванння співвідношення цих феноменів, не можна, адекватно зрозуміти сутність нації. Водночас недопустимо ототожнювати специфічні сфери філософського дослідження таких історичних спільностей людей, як народ, нація, етнос, та їх політичне, юридичне тлумачення і використання в суспільно-політичній практиці, в практиці законотворчості. Зв'язок між цими сферами, звичайно, є. Проте політичні, юридичні, морально-етичні висновки з філософських концепцій та практика тієї чи іншої конкретної політики і права, виразу морального або аморального вимірів поведінки людей у сфері расових і міжрасових, національних та міжнаціональних взаємин не тільки,.можуть бути, а й реально бувають настільки неодн...